// ik vindt Log4j een beetje te ingewikkeld..
// Dus maak ik eigen dinges
package zooi;

import prj4clientswing.*;
import eskuel.CMI_SQL;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class MyLogger {
  public static void drukaf(String str) {
    Main.txtAr.setText(Main.txtAr.getText() + "\n" + str);
    System.out.println(str);
  }
  //DEBUG, INFO, WARN, ERROR, FATAL

  public static String info = "INFO";
  public static String debug = "DEBUG";
  public static String warn = "WARN";
  public static String error = "ERROR";
  public static String fatal = "FATAL";
  String deClass;

  public MyLogger(String deClass) {
    //Constructor
    this.deClass = deClass;
  }

  public static void log(String deClass, String soort, String wat, String bericht, String ses_id) {
    CMI_SQL sql = new CMI_SQL(Db.dbhost, Db.dbname, Db.dbpass);
    Calendar kalender = Calendar.getInstance();
    String deDatum = calendarToString(kalender, "yyyy-MM-dd");
    String deTijd = calendarToString(kalender, "HH:mm:ss");
    String extraInfo = ""; //+System.getProperties();
    String sqlQuery = "INSERT INTO `" + Db.dblogtable + "` (`Log_id`, `ClassNaam`,`Soort`,`Session_id`,`Wat`,`Bericht`,`Datum`,`Tijd`,`ExtraInfo`) VALUES (null,'" + deClass + "','" + soort + "','" + ses_id + "','" + wat + "','" + bericht + "','" + deDatum + "','" + deTijd + "','" + extraInfo + "')";
    if (Db.logprint) {
      drukaf("'" + deClass + "','" + wat + "','" + bericht + "','" + deDatum + "','" + deTijd + "','" + extraInfo + "'");
      System.out.println("'" + deClass + "','" + wat + "','" + bericht + "','" + deDatum + "','" + deTijd + "','" + extraInfo + "'");
    }
    if (!Db.logstaataan) {
      System.out.println("Loggen staat uit!\nHet wordt dus niet in de DB gezet !!");
      return;
    }
    sql.insertQuery(sqlQuery);
  }

  public void log(String soort, String wat, String bericht) {
    CMI_SQL sql = new CMI_SQL(Db.dbhost, Db.dbname, Db.dbpass);
    Calendar kalender = Calendar.getInstance();
    String deDatum = calendarToString(kalender, "yyyy-MM-dd");
    String deTijd = calendarToString(kalender, "HH:mm:ss");
    String extraInfo = ""; //+System.getProperties();
    String sqlQuery = "INSERT INTO `" + Db.dblogtable + "` (`Log_id`, `ClassNaam`,`Soort`,`Wat`,`Bericht`,`Datum`,`Tijd`,`ExtraInfo`) VALUES (null,'" + deClass + "','" + soort + "','" + wat + "','" + bericht + "','" + deDatum + "','" + deTijd + "','" + extraInfo + "')";
    if (Db.logprint) {
      System.out.println("'" + deClass + "','" + wat + "','" + bericht + "','" + deDatum + "','" + deTijd + "','" + extraInfo + "'");
    }
    if (!Db.logstaataan) {
      System.out.println("Loggen staat uit!\nHet wordt dus niet in de DB gezet !!");
      return;
    }
    sql.insertQuery(sqlQuery);
  }
  //Bron: http://balusc.blogspot.com/2006/06/datum-en-tijd.html
  // Converteer Calendar naar String

  private static String calendarToString(Calendar calendar, String dateFormat) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
    return simpleDateFormat.format(calendar.getTime());
  }

  public static void main(String[] args) {
    //De Logger uitproberen
    MyLogger.log("pin.MyLogger", MyLogger.info, "Logger Testen", "Tis gelukt hoor :-) !", null);
    /*
    //Loggen op manier 1:
    //Voor als je ff 1 regeltje in de db wilt zetten
    pin.MyLogger.log("pin.Main",pin.MyLogger.info,"Main (Constructor)","Bankserver wordt gestart");
    //Loggen op manier 2:
    //Voor als je in deze class/method meerdere log in de db wilt zetten.
    //Voordeel van dit: je hoeft maar 1x je class door te geven
    MyLogger logger = new MyLogger("pin.Main");
    logger.log(MyLogger.info,"Main (Constructor)","Bankserver wordt gestart");
     */
  }
}